package com.app.module.camera.core.provider

import android.graphics.SurfaceTexture
import android.util.Size

/**
 * AV provider 提供一个类似于播放器的功能, 其中
 * open 提供一个surface
 * frame 提供下一帧
 *
 */
class AVProvider : Provider {
    /**
     * 该方法中提供的surface是一个内容提供者
     * 例如在 cameraProvider中 surface用于camera拍照像素的存储
     * 在本类AVProvider中 surface用于AV视频帧的存储
     *
     */

    init {
        /**
         * 创建一个AVRenderer ,用于在空白界面绘制YUV数据
         * 绘制的条件就是根据回调
         */
    }
    override fun open(): TextureBean {
        return TextureBean(1, SurfaceTexture(1), Size(1920, 1080))
    }

    override fun close() {
        val surfaceTexture = SurfaceTexture(1)
    }

    override fun frame(): Boolean {
        return true
    }

    override fun time(): Long {

        return System.currentTimeMillis()
    }

    override fun isLandscape(): Boolean {
        return true
    }
}
